/***********************************************************
 * Ports:    
 *  VL_IN8(&rstn,0,0);
 *  VL_IN8(&sys_clk,0,0);
 *  VL_IN8(&set_time,0,0);
 *  VL_IN8(&set_hour,0,0);
 *  VL_IN8(&set_min,0,0);
 *  VL_IN8(&set_alarm,0,0);
 *  VL_IN8(&toggle,0,0);
 *  VL_OUT8(&t_hour,7,0);
 *  VL_OUT8(&t_min,7,0);
 *  VL_OUT8(&t_sec,7,0);
 *  VL_OUT8(&a_hour,7,0);
 *  VL_OUT8(&a_min,7,0);
 *  VL_OUT8(&a_sec,7,0);
 *  VL_OUT8(&beep,0,0);
 *  VL_OUT16(&hour,15,0);
 *  VL_OUT16(&min,15,0);
 *  VL_OUT16(&sec,15,0);
************************************************************/

#include <stdlib.h>
#include <iostream>
#include <verilated.h>
#include <verilated_vcd_c.h>
#include "VclockTop.h"
#include "VclockTop___024root.h"

class Clock {
public:
  VclockTop* dut;

  Clock() {
    dut = new VclockTop;
  }

  void reset_clock();
  void dereset_clock();
  void show_clock();
  void show_alarm();
  void set_time_hour(uint64_t);
  void set_time_min(uint64_t);
  void set_alarm_hour(uint64_t);
  void set_alarm_min(uint64_t);
  void set_toggle(uint64_t);
  void display();

  void pos_edge();
  void neg_edge();
  void update_sim();

  ~Clock() {
    delete dut;
  }
};

